1
Абстракция «Всё — это файл»
AI031Lesson 10
00:00

В системе Linux абстракция "Всё — это файл" отображает все источники ввода-вывода — от обычных файлов до сетевых сокетов—в единый поток байтов. Эта унифицированная интерфейс позволяет обеспечить согласованное ввод-вывод на уровне системы для управления серверным процессом и клиентским процессом транзакцией на многопроцессорной архитектуре.

Единая модель

Независимо от того, обращается ли программа к обычному файлу, каталогу, или аппаратному обеспечению, например сетевому адаптеру, она использует одни и те же примитивы. Как видно из организации аппаратного обеспечения (Рисунок 11.2), операционная система соединяет процессор и память с устройствами через шину ввода-вывода, рассматривая сеть как файл для упрощения параллелизма на многопроцессорной архитектуре.

Архитектура шины системы/памятиЦПМост ввода-выводаСетевой адаптер

Надежный ввод-вывод и метаданные

Для обработки коротких считываний (где запрошенные байты $k$ связаны с доступными байтами $m$ как $k \ge m$), пакет Rio (надежный ввод-вывод) обеспечивает rio_readinitb для буферизированного ввода. Метаданные управляются через stat, в то время как права доступа, такие как O_RDWR и S_IROTH ограничиваются umask.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>